
package com.probiz.estore.customer.dao;

import java.util.List;

import com.probiz.estore.common.model.customer.Wishlist;
import com.probiz.estore.core.dao.GenericDao;

/**
 * Wishlist Data Access Object (DAO) interface. Developer introduced interfaces
 * should be declared here. Won't get overwritten.
 */
public interface WishlistDao extends GenericDao<Wishlist> {
	/**
	 * get a customer's all wishlist.
	 * 
	 * @param customerId
	 * @return
	 */
	public List<Wishlist> getByCustomerId(Integer customerId);

	/**
	 * get a customer default wishlist
	 * 
	 * @param customerId
	 * @return
	 */
	public Wishlist getCustomerDefaultWishlist(Integer customerId);

	/**
	 * set a default wishlist for a customer
	 * 
	 * @param wishlistId
	 * @param customerId
	 */
	public void updateDefaultWishList(Integer wishlistId, Integer customerId);

	/**
	 * delete wishlist and it's wish list items;
	 * 
	 * @param wishlistId
	 */
	public void deleteWishlist(Integer wishlistId);

	/**
	 * check this product has exist in this wishlist
	 * 
	 * @param wishlistId
	 * @param productId
	 * @return
	 */
	public boolean isProductExistInWishList(Integer wishlistId, Integer productId);
}
